package com.xuz.singleton.demo03;

/**
 * 单例模式 - 懒汉式(线程安全)
 * 特点：支持延时加载，只有调用getInstance方法时，才会创建对象
 *      使用synchronized锁，锁住创建单例对象的方法，防止多个线程同时调用
 *      缺点：因为对getInstance() 方法加了锁，导致这个函数的并发度降低
 *
 * @user 65453
 * @date 2024/9/22 16:05
 */
public class Singleton_03 {
    // 1.构造一个私有方法
    private Singleton_03() {

    }

    //2.在本类中创建私有静态的全局对象
    private static Singleton_03 instance;

    //3.通过添加synchronized，保证在多线程模式下的单例对象的唯一性
    public static synchronized Singleton_03 getInstance() {
        // 判读对象是否被创建
        if (instance == null) {
            instance = new Singleton_03();
        }
        return instance;
    }
}
